<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of RecursosModel
 *
 * @author Gabriel
 */

require_once("Model.php");

require_once("../entidades/RecursoEnt.php");
require_once("../entidades/TipoRecursoEnt.php");


class RecursosModel extends Model{
    
    public function __construct() {
        parent::__construct();
        
    }
    
    
    
    /**
     * Método que retorna uma lista contendo todos os recursos cadastrados
     * e ordenados pelo tipo de recurso
     * @return RecursoEnt Array 
     */
    public function buscaRecursos(){
        $sql = "SELECT * FROM view_recursos_e_tipos ORDER BY CodigoTipoRecurso";
        return $this->executaConsultaSQL($sql);                 
    }
    
    
    /**
     * Método que recebe uma consulta SQL e monta um vetor de objetos RecursoEnt,
     * uma classe mapeada para o modelo relacional.
     * @param String $sql Uma consulta SQL
     * @return Array RecursoEnt 
     */
    private function executaConsultaSQL($sql){
        $resultados = parent::executaConsulta($sql);
        
        $recursos = Array();
        
        foreach($resultados as $linha){
            
            $objTipoRecurso = new TipoRecursoEnt();
            $objTipoRecurso->setCodigoTipoRecurso($linha["CodigoTipoRecurso"]);
            $objTipoRecurso->setDescricaoTipoRecurso($linha["DescricaoTipoRecurso"]);
            
            $objRecurso = new RecursoEnt();
            $objRecurso->setCodigoRecurso($linha["CodigoRecurso"]);
            $objRecurso->setDescricaoRecurso($linha["DescricaoRecurso"]);
            $objRecurso->setTipoRecurso($objTipoRecurso);
            
            $recursos[] = $objRecurso;
            
        }        
        return $recursos;        
    }
}

?>
